package com.hewl.config.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.hewl.shiro.admin.entity.Query;



/**
 * 数据对象基础操作类
 * @author hewl	
 * 
 */
public interface BaseMapper<T> extends Serializable {
	
	/**
	 * 查询集合
	 * @param entity
	 * @return
	 */
	List<T> quertList(T entity);
	
	/**
	 * 根据对象实体查询单条数据
	 * @param entity
	 * @return
	 */
	
	T queryTarget(T entity);
	
	/**
	 * 插入单条数据
	 * @param entity
	 * @return
	 */
	int insert(T entity);
	
	/**
	 * 插入单条信息(只插入！= null字段)
	 * @param entity
	 * @return
	 */
	int insertSelective(T entity);
	
	/**
	 * 批量插入数据
	 * @param list
	 * @return
	 */
	int insertBatch(List<T> list);
	
	/**
	 * 更新单条信息
	 * @param entity
	 * @return
	 */
	int update(T entity);
	
	/**
	 * 更新单条信息(只更新！= null 字段)
	 * @param enetiy
	 * @return
	 */
	int updateSelective(T enetiy);
	
	/**
	 * 批量更新数据
	 * @param list
	 * @return
	 */
	int updateBatch(List<T> list);
	
	/**
	 * 根据实体删除数据(物理删除)
	 * @param entity
	 * @return
	 */
	int delete(T entity);
	
	/**
	 * 根据实体删除数据(逻辑删除)
	 * @param entity
	 * @return
	 */
	int deleteByLogic(T entity);
	

}
